home *** CD-ROM | disk | FTP | other *** search
- #define EXTERN extern
- #include "texd.h"
-
- void normalparagraph ( )
- {normalparagraph_regmem
- if ( eqtb [ 6182 ] .cint != 0 )
- eqworddefine ( 6182 , 0 ) ;
- if ( eqtb [ 6747 ] .cint != 0 )
- eqworddefine ( 6747 , 0 ) ;
- if ( eqtb [ 6204 ] .cint != 1 )
- eqworddefine ( 6204 , 1 ) ;
- if ( eqtb [ 4312 ] .hh .v.RH != 0 )
- eqdefine ( 4312 , 118 , 0 ) ;
- }
- void zboxend ( boxcontext )
- integer boxcontext ;
- {boxend_regmem
- halfword p ;
- if ( boxcontext < 1073741824L )
- {
- if ( curbox != 0 )
- {
- mem [ curbox + 4 ] .cint = boxcontext ;
- if ( abs ( curlist .modefield ) == 1 )
- {
- appendtovlist ( curbox ) ;
- if ( adjusttail != 0 )
- {
- if ( memtop - 5 != adjusttail )
- {
- mem [ curlist .tailfield ] .hh .v.RH = mem [ memtop - 5 ] .hh
- .v.RH ;
- curlist .tailfield = adjusttail ;
- }
- adjusttail = 0 ;
- }
- if ( curlist .modefield > 0 )
- buildpage () ;
- }
- else {
-
- if ( abs ( curlist .modefield ) == 102 )
- curlist .auxfield .hh .v.LH = 1000 ;
- else {
-
- p = newnoad () ;
- mem [ p + 1 ] .hh .v.RH = 2 ;
- mem [ p + 1 ] .hh .v.LH = curbox ;
- curbox = p ;
- }
- mem [ curlist .tailfield ] .hh .v.RH = curbox ;
- curlist .tailfield = curbox ;
- }
- }
- }
- else if ( boxcontext < 1073742336L )
- if ( boxcontext < 1073742080L )
- eqdefine ( -1073737246L + boxcontext , 119 , curbox ) ;
- else geqdefine ( -1073737502L + boxcontext , 119 , curbox ) ;
- else if ( curbox != 0 )
- if ( boxcontext > 1073742336L )
- {
- do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- if ( ( ( curcmd == 26 ) && ( abs ( curlist .modefield ) != 1 ) ) || ( (
- curcmd == 27 ) && ( abs ( curlist .modefield ) == 1 ) ) || ( ( curcmd ==
- 28 ) && ( abs ( curlist .modefield ) == 203 ) ) )
- {
- appendglue () ;
- mem [ curlist .tailfield ] .hh.b1 = boxcontext - ( 1073742237L ) ;
- mem [ curlist .tailfield + 1 ] .hh .v.RH = curbox ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1059 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1060 ;
- helpline [ 1 ] = 1061 ;
- helpline [ 0 ] = 1062 ;
- }
- backerror () ;
- flushnodelist ( curbox ) ;
- }
- }
- else shipout ( curbox ) ;
- }
- void zbeginbox ( boxcontext )
- integer boxcontext ;
- {/* 10 30 */ beginbox_regmem
- halfword p, q ;
- quarterword m ;
- halfword k ;
- eightbits n ;
- switch ( curchr )
- {case 0 :
- {
- scaneightbitint () ;
- curbox = eqtb [ 4578 + curval ] .hh .v.RH ;
- eqtb [ 4578 + curval ] .hh .v.RH = 0 ;
- }
- break ;
- case 1 :
- {
- scaneightbitint () ;
- curbox = copynodelist ( eqtb [ 4578 + curval ] .hh .v.RH ) ;
- }
- break ;
- case 2 :
- {
- curbox = 0 ;
- if ( abs ( curlist .modefield ) == 203 )
- {
- youcant () ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 1063 ;
- }
- error () ;
- }
- else if ( ( curlist .modefield == 1 ) && ( curlist .headfield == curlist
- .tailfield ) )
- {
- youcant () ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1064 ;
- helpline [ 0 ] = 1065 ;
- }
- error () ;
- }
- else {
-
- if ( ! ( curlist .tailfield >= himemmin ) )
- if ( ( mem [ curlist .tailfield ] .hh.b0 == 0 ) || ( mem [ curlist
- .tailfield ] .hh.b0 == 1 ) )
- {
- q = curlist .headfield ;
- do {
- p = q ;
- if ( ! ( q >= himemmin ) )
- if ( mem [ q ] .hh.b0 == 7 )
- {
- {register integer for_end; m = 1 ; for_end = mem [ q ] .hh.b1
- ; if ( m <= for_end) do
- p = mem [ p ] .hh .v.RH ;
- while ( m++ < for_end ) ; }
- if ( p == curlist .tailfield )
- goto lab30 ;
- }
- q = mem [ p ] .hh .v.RH ;
- } while ( ! ( q == curlist .tailfield ) ) ;
- curbox = curlist .tailfield ;
- mem [ curbox + 4 ] .cint = 0 ;
- curlist .tailfield = p ;
- mem [ p ] .hh .v.RH = 0 ;
- lab30: ;
- }
- }
- }
- break ;
- case 3 :
- {
- scaneightbitint () ;
- n = curval ;
- if ( ! scankeyword ( 835 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1066 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1067 ;
- helpline [ 0 ] = 1068 ;
- }
- error () ;
- }
- scandimen ( false , false , false ) ;
- curbox = vsplit ( n , curval ) ;
- }
- break ;
- default:
- {
- k = curchr - 4 ;
- savestack [ saveptr + 0 ] .cint = boxcontext ;
- if ( k == 102 )
- if ( ( boxcontext < 1073741824L ) && ( abs ( curlist .modefield ) == 1 )
- )
- scanspec ( 3 , true ) ;
- else scanspec ( 2 , true ) ;
- else {
-
- if ( k == 1 )
- scanspec ( 4 , true ) ;
- else {
-
- scanspec ( 5 , true ) ;
- k = 1 ;
- }
- normalparagraph () ;
- }
- pushnest () ;
- curlist .modefield = - (integer) k ;
- if ( k == 1 )
- {
- curlist .auxfield .cint = -65536000L ;
- if ( eqtb [ 4318 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4318 ] .hh .v.RH , 11 ) ;
- }
- else {
-
- curlist .auxfield .hh .v.LH = 1000 ;
- if ( eqtb [ 4317 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4317 ] .hh .v.RH , 10 ) ;
- }
- return ;
- }
- break ;
- }
- boxend ( boxcontext ) ;
- }
- void zscanbox ( boxcontext )
- integer boxcontext ;
- {scanbox_regmem
- do {
- getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- if ( curcmd == 20 )
- beginbox ( boxcontext ) ;
- else if ( ( boxcontext >= 1073742337L ) && ( ( curcmd == 36 ) || ( curcmd ==
- 35 ) ) )
- {
- curbox = scanrulespec () ;
- boxend ( boxcontext ) ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1069 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1070 ;
- helpline [ 1 ] = 1071 ;
- helpline [ 0 ] = 1072 ;
- }
- backerror () ;
- }
- }
- void zpackage ( c )
- smallnumber c ;
- {package_regmem
- scaled h ;
- halfword p ;
- scaled d ;
- d = eqtb [ 6737 ] .cint ;
- unsave () ;
- saveptr = saveptr - 3 ;
- if ( curlist .modefield == -102 )
- curbox = hpack ( mem [ curlist .headfield ] .hh .v.RH , savestack [ saveptr
- + 2 ] .cint , savestack [ saveptr + 1 ] .cint ) ;
- else {
-
- curbox = vpackage ( mem [ curlist .headfield ] .hh .v.RH , savestack [
- saveptr + 2 ] .cint , savestack [ saveptr + 1 ] .cint , d ) ;
- if ( c == 4 )
- {
- h = 0 ;
- p = mem [ curbox + 5 ] .hh .v.RH ;
- if ( p != 0 )
- if ( mem [ p ] .hh.b0 <= 2 )
- h = mem [ p + 3 ] .cint ;
- mem [ curbox + 2 ] .cint = mem [ curbox + 2 ] .cint - h + mem [ curbox +
- 3 ] .cint ;
- mem [ curbox + 3 ] .cint = h ;
- }
- }
- popnest () ;
- boxend ( savestack [ saveptr + 0 ] .cint ) ;
- }
- smallnumber znormmin ( h )
- integer h ;
- {register smallnumber Result; normmin_regmem
- if ( h <= 0 )
- Result = 1 ;
- else if ( h >= 63 )
- Result = 63 ;
- else Result = h ;
- return(Result) ;
- }
- void znewgraf ( indented )
- boolean indented ;
- {newgraf_regmem
- curlist .pgfield = 0 ;
- if ( ( curlist .modefield == 1 ) || ( curlist .headfield != curlist
- .tailfield ) )
- {
- mem [ curlist .tailfield ] .hh .v.RH = newparamglue ( 2 ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- curlist .lhmfield = normmin ( eqtb [ 6214 ] .cint ) ;
- curlist .rhmfield = normmin ( eqtb [ 6215 ] .cint ) ;
- pushnest () ;
- curlist .modefield = 102 ;
- curlist .auxfield .hh .v.LH = 1000 ;
- curlist .auxfield .hh .v.RH = 0 ;
- if ( indented )
- {
- curlist .tailfield = newnullbox () ;
- mem [ curlist .headfield ] .hh .v.RH = curlist .tailfield ;
- mem [ curlist .tailfield + 1 ] .cint = eqtb [ 6730 ] .cint ;
- }
- if ( eqtb [ 4314 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4314 ] .hh .v.RH , 7 ) ;
- if ( nestptr == 1 )
- buildpage () ;
- }
- void indentinhmode ( )
- {indentinhmode_regmem
- halfword p, q ;
- if ( curchr > 0 )
- {
- p = newnullbox () ;
- mem [ p + 1 ] .cint = eqtb [ 6730 ] .cint ;
- if ( abs ( curlist .modefield ) == 102 )
- curlist .auxfield .hh .v.LH = 1000 ;
- else {
-
- q = newnoad () ;
- mem [ q + 1 ] .hh .v.RH = 2 ;
- mem [ q + 1 ] .hh .v.LH = p ;
- p = q ;
- }
- {
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- }
- }
- void headforvmode ( )
- {headforvmode_regmem
- if ( curlist .modefield < 0 )
- if ( curcmd != 36 )
- offsave () ;
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 681 ) ;
- }
- printesc ( 517 ) ;
- print ( 1075 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1076 ;
- helpline [ 0 ] = 1077 ;
- }
- error () ;
- }
- else {
-
- backinput () ;
- curtok = partoken ;
- backinput () ;
- curinput .indexfield = 4 ;
- }
- }
- void endgraf ( )
- {endgraf_regmem
- if ( curlist .modefield == 102 )
- {
- if ( curlist .headfield == curlist .tailfield )
- popnest () ;
- else linebreak ( eqtb [ 6169 ] .cint ) ;
- normalparagraph () ;
- errorcount = 0 ;
- }
- }
- void begininsertoradjust ( )
- {begininsertoradjust_regmem
- if ( curcmd == 38 )
- curval = 255 ;
- else {
-
- scaneightbitint () ;
- if ( curval == 255 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1078 ) ;
- }
- printesc ( 327 ) ;
- printint ( 255 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 1079 ;
- }
- error () ;
- curval = 0 ;
- }
- }
- savestack [ saveptr + 0 ] .cint = curval ;
- incr ( saveptr ) ;
- newsavelevel ( 11 ) ;
- scanleftbrace () ;
- normalparagraph () ;
- pushnest () ;
- curlist .modefield = -1 ;
- curlist .auxfield .cint = -65536000L ;
- }
- void makemark ( )
- {makemark_regmem
- halfword p ;
- p = scantoks ( false , true ) ;
- p = getnode ( 2 ) ;
- mem [ p ] .hh.b0 = 4 ;
- mem [ p ] .hh.b1 = 0 ;
- mem [ p + 1 ] .cint = defref ;
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = p ;
- }
- void appendpenalty ( )
- {appendpenalty_regmem
- scanint () ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newpenalty ( curval ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( curlist .modefield == 1 )
- buildpage () ;
- }
- void deletelast ( )
- {/* 10 */ deletelast_regmem
- halfword p, q ;
- quarterword m ;
- if ( ( curlist .modefield == 1 ) && ( curlist .tailfield == curlist
- .headfield ) )
- {
- if ( ( curchr != 10 ) || ( lastglue != 65535L ) )
- {
- youcant () ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1064 ;
- helpline [ 0 ] = 1080 ;
- }
- if ( curchr == 11 )
- helpline [ 0 ] = ( 1081 ) ;
- else if ( curchr != 10 )
- helpline [ 0 ] = ( 1082 ) ;
- error () ;
- }
- }
- else {
-
- if ( ! ( curlist .tailfield >= himemmin ) )
- if ( mem [ curlist .tailfield ] .hh.b0 == curchr )
- {
- q = curlist .headfield ;
- do {
- p = q ;
- if ( ! ( q >= himemmin ) )
- if ( mem [ q ] .hh.b0 == 7 )
- {
- {register integer for_end; m = 1 ; for_end = mem [ q ] .hh.b1
- ; if ( m <= for_end) do
- p = mem [ p ] .hh .v.RH ;
- while ( m++ < for_end ) ; }
- if ( p == curlist .tailfield )
- return ;
- }
- q = mem [ p ] .hh .v.RH ;
- } while ( ! ( q == curlist .tailfield ) ) ;
- mem [ p ] .hh .v.RH = 0 ;
- flushnodelist ( curlist .tailfield ) ;
- curlist .tailfield = p ;
- }
- }
- }
- void unpackage ( )
- {/* 10 */ unpackage_regmem
- halfword p ;
- schar c ;
- c = curchr ;
- scaneightbitint () ;
- p = eqtb [ 4578 + curval ] .hh .v.RH ;
- if ( p == 0 )
- return ;
- if ( ( abs ( curlist .modefield ) == 203 ) || ( ( abs ( curlist .modefield )
- == 1 ) && ( mem [ p ] .hh.b0 != 1 ) ) || ( ( abs ( curlist .modefield ) ==
- 102 ) && ( mem [ p ] .hh.b0 != 0 ) ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1090 ) ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1091 ;
- helpline [ 1 ] = 1092 ;
- helpline [ 0 ] = 1093 ;
- }
- error () ;
- return ;
- }
- if ( c == 1 )
- mem [ curlist .tailfield ] .hh .v.RH = copynodelist ( mem [ p + 5 ] .hh
- .v.RH ) ;
- else {
-
- mem [ curlist .tailfield ] .hh .v.RH = mem [ p + 5 ] .hh .v.RH ;
- eqtb [ 4578 + curval ] .hh .v.RH = 0 ;
- freenode ( p , 7 ) ;
- }
- while ( mem [ curlist .tailfield ] .hh .v.RH != 0 ) curlist .tailfield = mem
- [ curlist .tailfield ] .hh .v.RH ;
- }
- void appenditaliccorrection ( )
- {/* 10 */ appenditaliccorrection_regmem
- halfword p ;
- internalfontnumber f ;
- if ( curlist .tailfield != curlist .headfield )
- {
- if ( ( curlist .tailfield >= himemmin ) )
- p = curlist .tailfield ;
- else if ( mem [ curlist .tailfield ] .hh.b0 == 6 )
- p = curlist .tailfield + 1 ;
- else return ;
- f = mem [ p ] .hh.b0 ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newkern ( fontinfo [ italicbase [
- f ] + ( fontinfo [ charbase [ f ] + mem [ p ] .hh.b1 ] .qqqq .b2 ) / 4 ]
- .cint ) ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- mem [ curlist .tailfield ] .hh.b1 = 1 ;
- }
- }
- void appenddiscretionary ( )
- {appenddiscretionary_regmem
- integer c ;
- {
- mem [ curlist .tailfield ] .hh .v.RH = newdisc () ;
- curlist .tailfield = mem [ curlist .tailfield ] .hh .v.RH ;
- }
- if ( curchr == 1 )
- {
- c = hyphenchar [ eqtb [ 4834 ] .hh .v.RH ] ;
- if ( c >= 0 )
- if ( c < 256 )
- mem [ curlist .tailfield + 1 ] .hh .v.LH = newcharacter ( eqtb [ 4834 ]
- .hh .v.RH , c ) ;
- }
- else {
-
- incr ( saveptr ) ;
- savestack [ saveptr - 1 ] .cint = 0 ;
- newsavelevel ( 10 ) ;
- scanleftbrace () ;
- pushnest () ;
- curlist .modefield = -102 ;
- curlist .auxfield .hh .v.LH = 1000 ;
- }
- }
- void builddiscretionary ( )
- {/* 30 10 */ builddiscretionary_regmem
- halfword p, q ;
- integer n ;
- unsave () ;
- q = curlist .headfield ;
- p = mem [ q ] .hh .v.RH ;
- n = 0 ;
- while ( p != 0 ) {
-
- if ( ! ( p >= himemmin ) )
- if ( mem [ p ] .hh.b0 > 2 )
- if ( mem [ p ] .hh.b0 != 11 )
- if ( mem [ p ] .hh.b0 != 6 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1100 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 1101 ;
- }
- error () ;
- begindiagnostic () ;
- printnl ( 1102 ) ;
- showbox ( p ) ;
- enddiagnostic ( true ) ;
- flushnodelist ( p ) ;
- mem [ q ] .hh .v.RH = 0 ;
- goto lab30 ;
- }
- q = p ;
- p = mem [ q ] .hh .v.RH ;
- incr ( n ) ;
- }
- lab30: ;
- p = mem [ curlist .headfield ] .hh .v.RH ;
- popnest () ;
- switch ( savestack [ saveptr - 1 ] .cint )
- {case 0 :
- mem [ curlist .tailfield + 1 ] .hh .v.LH = p ;
- break ;
- case 1 :
- mem [ curlist .tailfield + 1 ] .hh .v.RH = p ;
- break ;
- case 2 :
- {
- if ( ( n > 0 ) && ( abs ( curlist .modefield ) == 203 ) )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1094 ) ;
- }
- printesc ( 346 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1095 ;
- helpline [ 0 ] = 1096 ;
- }
- flushnodelist ( p ) ;
- n = 0 ;
- error () ;
- }
- else mem [ curlist .tailfield ] .hh .v.RH = p ;
- if ( n <= 255 )
- mem [ curlist .tailfield ] .hh.b1 = n ;
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1097 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1098 ;
- helpline [ 0 ] = 1099 ;
- }
- error () ;
- }
- if ( n > 0 )
- curlist .tailfield = q ;
- decr ( saveptr ) ;
- return ;
- }
- break ;
- }
- incr ( savestack [ saveptr - 1 ] .cint ) ;
- newsavelevel ( 10 ) ;
- scanleftbrace () ;
- pushnest () ;
- curlist .modefield = -102 ;
- curlist .auxfield .hh .v.LH = 1000 ;
- }
- void makeaccent ( )
- {makeaccent_regmem
- real s, t ;
- halfword p, q, r ;
- internalfontnumber f ;
- scaled a, h, x, w, delta ;
- fourquarters i ;
- scancharnum () ;
- f = eqtb [ 4834 ] .hh .v.RH ;
- p = newcharacter ( f , curval ) ;
- if ( p != 0 )
- {
- x = fontinfo [ 5 + parambase [ f ] ] .cint ;
- s = fontinfo [ 1 + parambase [ f ] ] .cint / ((double) 65536.0 ) ;
- a = fontinfo [ widthbase [ f ] + fontinfo [ charbase [ f ] + mem [ p ]
- .hh.b1 ] .qqqq .b0 ] .cint ;
- doassignments () ;
- q = 0 ;
- f = eqtb [ 4834 ] .hh .v.RH ;
- if ( ( curcmd == 11 ) || ( curcmd == 12 ) || ( curcmd == 68 ) )
- q = newcharacter ( f , curchr ) ;
- else if ( curcmd == 16 )
- {
- scancharnum () ;
- q = newcharacter ( f , curval ) ;
- }
- else backinput () ;
- if ( q != 0 )
- {
- t = fontinfo [ 1 + parambase [ f ] ] .cint / ((double) 65536.0 ) ;
- i = fontinfo [ charbase [ f ] + mem [ q ] .hh.b1 ] .qqqq ;
- w = fontinfo [ widthbase [ f ] + i .b0 ] .cint ;
- h = fontinfo [ heightbase [ f ] + ( i .b1 ) / 16 ] .cint ;
- if ( h != x )
- {
- p = hpack ( p , 0 , 1 ) ;
- mem [ p + 4 ] .cint = x - h ;
- }
- delta = round ( ( w - a ) / ((double) 2.0 ) + h * t - x * s ) ;
- r = newkern ( delta ) ;
- mem [ r ] .hh.b1 = 2 ;
- mem [ curlist .tailfield ] .hh .v.RH = r ;
- mem [ r ] .hh .v.RH = p ;
- curlist .tailfield = newkern ( - (integer) a - delta ) ;
- mem [ curlist .tailfield ] .hh.b1 = 2 ;
- mem [ p ] .hh .v.RH = curlist .tailfield ;
- p = q ;
- }
- mem [ curlist .tailfield ] .hh .v.RH = p ;
- curlist .tailfield = p ;
- curlist .auxfield .hh .v.LH = 1000 ;
- }
- }
- void alignerror ( )
- {alignerror_regmem
- if ( abs ( alignstate ) > 2 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1107 ) ;
- }
- printcmdchr ( curcmd , curchr ) ;
- if ( curtok == 1062 )
- {
- {
- helpptr = 6 ;
- helpline [ 5 ] = 1108 ;
- helpline [ 4 ] = 1109 ;
- helpline [ 3 ] = 1110 ;
- helpline [ 2 ] = 1111 ;
- helpline [ 1 ] = 1112 ;
- helpline [ 0 ] = 1113 ;
- }
- }
- else {
-
- {
- helpptr = 5 ;
- helpline [ 4 ] = 1108 ;
- helpline [ 3 ] = 1114 ;
- helpline [ 2 ] = 1111 ;
- helpline [ 1 ] = 1112 ;
- helpline [ 0 ] = 1113 ;
- }
- }
- error () ;
- }
- else {
-
- backinput () ;
- if ( alignstate < 0 )
- {
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 653 ) ;
- }
- incr ( alignstate ) ;
- curtok = 379 ;
- }
- else {
-
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1103 ) ;
- }
- decr ( alignstate ) ;
- curtok = 637 ;
- }
- {
- helpptr = 3 ;
- helpline [ 2 ] = 1104 ;
- helpline [ 1 ] = 1105 ;
- helpline [ 0 ] = 1106 ;
- }
- inserror () ;
- }
- }
- void noalignerror ( )
- {noalignerror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1107 ) ;
- }
- printesc ( 523 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1115 ;
- helpline [ 0 ] = 1116 ;
- }
- error () ;
- }
- void omiterror ( )
- {omiterror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 1107 ) ;
- }
- printesc ( 526 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 1117 ;
- helpline [ 0 ] = 1116 ;
- }
- error () ;
- }
- void doendv ( )
- {doendv_regmem
- if ( curgroup == 6 )
- {
- endgraf () ;
- if ( fincol () )
- finrow () ;
- }
- else offsave () ;
- }
- void cserror ( )
- {cserror_regmem
- {
- if ( interaction == 3 )
- wakeupterminal () ;
- printnl ( 262 ) ;
- print ( 772 ) ;
- }
- printesc ( 501 ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 1119 ;
- }
- error () ;
- }
- void zpushmath ( c )
- groupcode c ;
- {pushmath_regmem
- pushnest () ;
- curlist .modefield = -203 ;
- curlist .auxfield .cint = 0 ;
- newsavelevel ( c ) ;
- }
- void initmath ( )
- {/* 21 40 45 30 */ initmath_regmem
- scaled w ;
- scaled l ;
- scaled s ;
- halfword p ;
- halfword q ;
- internalfontnumber f ;
- integer n ;
- scaled v ;
- scaled d ;
- gettoken () ;
- if ( ( curcmd == 3 ) && ( curlist .modefield > 0 ) )
- {
- if ( curlist .headfield == curlist .tailfield )
- {
- popnest () ;
- w = -1073741823L ;
- }
- else {
-
- linebreak ( eqtb [ 6170 ] .cint ) ;
- v = mem [ justbox + 4 ] .cint + 2 * fontinfo [ 6 + parambase [ eqtb [
- 4834 ] .hh .v.RH ] ] .cint ;
- w = -1073741823L ;
- p = mem [ justbox + 5 ] .hh .v.RH ;
- while ( p != 0 ) {
-
- lab21: if ( ( p >= himemmin ) )
- {
- f = mem [ p ] .hh.b0 ;
- d = fontinfo [ widthbase [ f ] + fontinfo [ charbase [ f ] + mem [ p
- ] .hh.b1 ] .qqqq .b0 ] .cint ;
- goto lab40 ;
- }
- switch ( mem [ p ] .hh.b0 )
- {case 0 :
- case 1 :
- case 2 :
- {
- d = mem [ p + 1 ] .cint ;
- goto lab40 ;
- }
- break ;
- case 6 :
- {
- mem [ memtop - 12 ] = mem [ p + 1 ] ;
- mem [ memtop - 12 ] .hh .v.RH = mem [ p ] .hh .v.RH ;
- p = memtop - 12 ;
- goto lab21 ;
- }
- break ;
- case 11 :
- case 9 :
- d = mem [ p + 1 ] .cint ;
- break ;
- case 10 :
- {
- q = mem [ p + 1 ] .hh .v.LH ;
- d = mem [ q + 1 ] .cint ;
- if ( mem [ justbox + 5 ] .hh.b0 == 1 )
- {
- if ( ( mem [ justbox + 5 ] .hh.b1 == mem [ q ] .hh.b0 ) && ( mem
- [ q + 2 ] .cint != 0 ) )
- v = 1073741823L ;
- }
- else if ( mem [ justbox + 5 ] .hh.b0 == 2 )
- {
- if ( ( mem [ justbox + 5 ] .hh.b1 == mem [ q ] .hh.b1 ) && ( mem
- [ q + 3 ] .cint != 0 ) )
- v = 1073741823L ;
- }
- if ( mem [ p ] .hh.b1 >= 100 )
- goto lab40 ;
- }
- break ;
- case 8 :
- d = 0 ;
- break ;
- default:
- d = 0 ;
- break ;
- }
- if ( v < 1073741823L )
- v = v + d ;
- goto lab45 ;
- lab40: if ( v < 1073741823L )
- {
- v = v + d ;
- w = v ;
- }
- else {
-
- w = 1073741823L ;
- goto lab30 ;
- }
- lab45: p = mem [ p ] .hh .v.RH ;
- }
- lab30: ;
- }
- if ( eqtb [ 4312 ] .hh .v.RH == 0 )
- if ( ( eqtb [ 6747 ] .cint != 0 ) && ( ( ( eqtb [ 6204 ] .cint >= 0 ) && (
- curlist .pgfield + 2 > eqtb [ 6204 ] .cint ) ) || ( curlist .pgfield + 1 <
- - (integer) eqtb [ 6204 ] .cint ) ) )
- {
- l = eqtb [ 6733 ] .cint - abs ( eqtb [ 6747 ] .cint ) ;
- if ( eqtb [ 6747 ] .cint > 0 )
- s = eqtb [ 6747 ] .cint ;
- else s = 0 ;
- }
- else {
-
- l = eqtb [ 6733 ] .cint ;
- s = 0 ;
- }
- else {
-
- n = mem [ eqtb [ 4312 ] .hh .v.RH ] .hh .v.LH ;
- if ( curlist .pgfield + 2 >= n )
- p = eqtb [ 4312 ] .hh .v.RH + 2 * n ;
- else p = eqtb [ 4312 ] .hh .v.RH + 2 * ( curlist .pgfield + 2 ) ;
- s = mem [ p - 1 ] .cint ;
- l = mem [ p ] .cint ;
- }
- pushmath ( 15 ) ;
- curlist .modefield = 203 ;
- eqworddefine ( 6207 , -1 ) ;
- eqworddefine ( 6743 , w ) ;
- eqworddefine ( 6744 , l ) ;
- eqworddefine ( 6745 , s ) ;
- if ( eqtb [ 4316 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4316 ] .hh .v.RH , 9 ) ;
- if ( nestptr == 1 )
- buildpage () ;
- }
- else {
-
- backinput () ;
- {
- pushmath ( 15 ) ;
- eqworddefine ( 6207 , -1 ) ;
- if ( eqtb [ 4315 ] .hh .v.RH != 0 )
- begintokenlist ( eqtb [ 4315 ] .hh .v.RH , 8 ) ;
- }
- }
- }
-